package cn.iocoder.yudao.module.call.mq.consumer.task;

import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
import cn.iocoder.yudao.module.call.dal.dataobject.task.CallTaskDO;
import cn.iocoder.yudao.module.call.dal.mysql.task.CallTaskMapper;
import cn.iocoder.yudao.module.call.framework.client.CallCenter;
import cn.iocoder.yudao.module.call.api.client.dto.ResponseDTO;
import cn.iocoder.yudao.module.call.mq.message.task.CallTaskNumberMessage;
import cn.iocoder.yudao.module.call.mq.message.translate.CallTranslateMessage;
import cn.iocoder.yudao.module.call.service.channel.ChannelService;
import cn.iocoder.yudao.module.call.service.task.CallTaskService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.call.enums.ErrorCodeConstants.TASK_NOT_EXISTS;

/**
 * 针对 {@link CallTranslateMessage} 的消费者
 *
 * @author 芋道源码
 */
@Component
@Slf4j
public class CallTaskNumberConsumer {
    @Resource
    private CallTaskService callTaskService;

    @EventListener
    @Async // Spring Event 默认在 Producer 发送的线程，通过 @Async 实现异步
    public void onMessage(CallTaskNumberMessage message) {
        log.debug("追加群呼任务号码列表： ==== taskId: {}, numberSize: {}", message.getTaskId(), message.getCalleeList().size());
        callTaskService.doAppendNumber(message);
    }


}
